﻿//  1、前缀和
#include <iostream>
#include<vector>
using namespace std;

int main()
{
    int n, q;
    cin >> n >> q;
    vector<int> arr(n + 1, 0);
    for (int i = 1; i <= n; i++) cin >> arr[i];
    vector<long long> dp(n + 1, 0);
    for (int i = 1; i <= n; i++) dp[i] = arr[i] + dp[i - 1];
    int l, r;
    while (q--)
    {
        cin >> l >> r;
        cout << dp[r] - dp[l - 1] << endl;
    }
    return 0;
}

//2、二维前缀和
//#include <iostream>
//#include<vector>
//using namespace std;
//
//int main()
//{
//    int n, m, q;
//    cin >> n >> m >> q;
//    vector<vector<long long>> arr(n + 1, vector<long long>(m + 1));
//    for (int i = 1; i <= n; i++)
//    {
//        for (int j = 1; j <= m; j++)
//        {
//            cin >> arr[i][j];
//        }
//    }
//
//    vector<vector<long long>> dp(n + 1, vector<long long>(m + 1));
//    for (int i = 1; i <= n; i++)
//    {
//        for (int j = 1; j <= m; j++)
//        {
//            dp[i][j] = dp[i - 1][j] + dp[i][j - 1] + arr[i][j] - dp[i - 1][j - 1];
//        }
//    }
//
//    int x1, x2, y1, y2;
//    while (q--)
//    {
//        cin >> x1 >> y1 >> x2 >> y2;
//        cout << dp[x2][y2] - dp[x1 - 1][y2] - dp[x2][y1 - 1] + dp[x1 - 1][y1 - 1] << endl;
//    }
//    return 0;
//}

//3、寻找数组的中⼼下标
//class Solution {
//public:
//    int pivotIndex(vector<int>& nums)
//    {
//        int n = nums.size();
//        vector<int> f(n), g(n);
//        //前缀和
//        for (int i = 1; i < n; i++)
//            f[i] = nums[i - 1] + f[i - 1];
//        //后缀和
//        for (int i = n - 2; i >= 0; i--)
//            g[i] = nums[i + 1] + g[i + 1];
//
//        for (int i = 0; i < n; i++)
//        {
//            if (g[i] == f[i])
//                return i;
//        }
//        return -1;
//    }
//};

//4、除⾃⾝以外数组的乘积
//class Solution {
//public:
//    vector<int> productExceptSelf(vector<int>& nums)
//    {
//        int n = nums.size();
//        vector<int> g(n), f(n);
//        //前缀积
//        f[0] = g[n - 1] = 1;
//        for (int i = 1; i < n; i++)
//            f[i] = f[i - 1] * nums[i - 1];
//        //后缀积
//        for (int i = n - 2; i >= 0; i--)
//            g[i] = g[i + 1] * nums[i + 1];
//
//        vector<int> arr(n);
//        for (int i = 0; i < n; i++)
//        {
//            arr[i] = g[i] * f[i];
//        }
//        return arr;
//    }
//};